<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<!-- 

请使用let和const分别声明变量，并描述它们的区别。同时，查找并背诵暂时性死区的概念和解决方
案。
-->
<script>
    // 相同点：
    // let和const都不可以重复声明，都有块级作用域，都没有变量声明提升
    // 不同点：
    // let声明的是变量，const声明的是常量
    // let可以修改变量的值，const不可以修改变量的值
    // const如果声明的常量是对于复合类型的数据，只能改变声明的常量的内部数据，不可以重新赋值




    // // let声明的是变量
    // //不可以重复声明
    // let age = 18;
    // let age = 18;//Identifier 'age' has already been declared
    // //有块级作用域
    //  let age =18
    // {
    //     let age =20
    //     console.log(age);//20

    // }
    // console.log(age);//18
    // //没有变量声明提升
    // console.log(age);//Cannot access 'age' before initialization
    // //可以修改变量的值
    // let age = 18;
    // console.log(age = 19);







    // // const声明的是常量
    // //不可以重复声明
    // const name = 'jay';
    // const name = 'jay';//Identifier 'name' has already been declared
    // // 不可以修改变量的值
    // name = 'joLin';
    // console.log(name);//Assignment to constant variable
    // //有块级作用域
    // const name ='jay'
    // {
    //     const name = 'joLin'
    //     console.log(name);//joLin

    // }
    // console.log(name);//jay
    // //没有变量声明提升
    // console.log(name);//Cannot access 'name' before initialization
    // const name = 'jay'

    // 如果是对于复合类型的数据（主要是对象和数组）
    // 只能改变声明的常量的内部数据，不可以重新赋值
    // const a = {
    //     name: 'jay',
    // }
    // console.log(a.name = 'joLin');//joLin
    // console.log(
    //     a = {
    //         name: 'joLin',
    //     }
    // );//Assignment to constant variable.






</script>

</html>